package com.heima.mapper;

import com.github.pagehelper.Page;
import com.heima.dto.RoleDto;
import com.heima.pojo.Role;
import com.heima.vo.RoleVo;
import org.apache.ibatis.annotations.*;
import org.springframework.web.bind.annotation.GetMapping;

import java.util.List;

@Mapper
public interface RoleMapper {
    /**
     * 分页查询角色列表
     * @param roleDto
     * @return
     */
    Page<RoleVo> list(RoleDto roleDto);

    /**
     * 批量删除角色
     * @param id
     */
    @Delete("delete from tb_role where role_id = #{id}")
    void deleteById(Integer id);

    /**
     * 根据角色编号查询角色信息
     * @param roleId
     * @return
     */
    @Select("select * from tb_role where role_id = #{roleId}")
    RoleVo getById(Integer roleId);

    /**
     * 修改角色
     * @param role
     */
    @Update("update tb_role set role_name = #{roleName},role_key = #{roleKey},role_sort = #{roleSort}," +
            "status = #{status},data_scope = #{dataScope},create_time = #{createTime} where role_id = #{roleId}")
    void updateRole(Role role);

    /**
     * 修改角色数据权限
     * @param dataScope
     * @param roleId
     */
    @Update("update tb_role set data_scope = #{dataScope} where role_id = #{roleId}")
    void updateDataScope(String dataScope, Integer roleId);

    /**
     * 添加角色
     * @param role
     */
    @Insert("insert into tb_role(role_id,role_name,role_key,role_sort,status,data_scope,create_time)"
            + "values(#{roleId},#{roleName},#{roleKey},#{roleSort},#{status},#{dataScope},#{createTime})")
    void addRole(Role role);

    /**
     * 根据角色编号查询角色数量
     * @param random
     * @return
     */
    @Select("select count(*) from tb_role where role_id = #{random}")
    int selectCountById(Integer random);

    /**
     * 修改角色状态
     * @param role
     */
    @Update("update tb_role set status = #{status} where role_id = #{roleId}")
    void updateCourse(Role role);

}
